# -*- coding: utf-8 -*-

#This file is part of pyLot library.
#
# pyLot is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# pyLot is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with pyLot.  If not, see <http://www.gnu.org/licenses/>.

__author__ = u'Pierre Puiseux, Guillaume Baty'
__copyright__ = u"Copyright 2011-2012 (C) andheo, Université de Pau et des Pays de l'Adour"
__credits__ = [u'Pierre Puiseux', u'Guillaume Baty']
__license__ = "GNU Lesser General Public License"

__all__ = [u'install_qtranslator']

import os
from Qt4 import (QtCore, QtGui)
from _pylot.defaultconf import MO_FILE_DIR
from pyLot.core import (Path, LANG, ENCODING)

__CURRENT_QT_LOCALE = None

QTRANSLATORS = {}

def install_qtranslator(locale):
  global __CURRENT_QT_LOCALE, QTRANSLATORS
  if locale == __CURRENT_QT_LOCALE :
    return
  __CURRENT_QT_LOCALE = locale
  try :
    translator = QTRANSLATORS[locale]
  except KeyError :
    translator = QtCore.QTranslator()
    QTRANSLATORS[locale] = translator

  i18n_path = unicode(Path(MO_FILE_DIR.decode(ENCODING), u'%s.qm' % locale).abspath())
  loaded = translator.load(i18n_path)

  for old_translator in QTRANSLATORS.values():
    QtCore.QCoreApplication.instance().removeTranslator(old_translator)

  if loaded :
    QtCore.QCoreApplication.instance().installTranslator(translator)
